/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pesistencia;

import BancoDados.BancoDados;
import Entidade.ClienteModel;
import Entidade.EstoqueModel;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author Aluno
 */
public class EstoquePersistencia {
     BancoDados bd;
      
      
       public ArrayList<EstoqueModel> getListaProdutos() {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM estoque");
            ArrayList<EstoqueModel> retorno = new ArrayList<>();
            while(rs.next()){
           
                EstoqueModel p = new EstoqueModel(rs.getInt("codProduto"), rs.getString("dataUltCompra"), rs.getInt("quantidade"));
                        retorno.add(p);
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public EstoquePersistencia(BancoDados bd) {
        this.bd = bd;
    }

    public void cadastrar( EstoqueModel estoque) {
        try {
            bd.atualizar("INSERT INTO estoque (codProduto,dataUltCompra,quantidade) VALUES ("+estoque.getProduto()+" ,'"+estoque.getDtultcompra()+"' ,"+estoque.getQuant()+")");
           
            System.out.println ("INSERT INTO estoque (codProduto,dataUltCompra,quantidade) VALUES ("+estoque.getProduto()+" ,'"+estoque.getDtultcompra()+"' ,"+estoque.getQuant()+"')");
        } catch (Exception e) {
            e.printStackTrace();
        }
        
    }

    public  EstoqueModel buscar(int codigo) {
        try {
            ResultSet rs = bd.consultar("SELECT * FROM estoque WHERE codProduto = "+codigo);
            rs.next();
            EstoqueModel retorno;
            if(rs.getRow() == 0){
               retorno = null;
            } else {
                retorno = new EstoqueModel(rs.getInt("codProduto"), rs.getString("dataUltCompra"), rs.getInt("quantidade"));
                       }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
          
        } 
    }

    public int recuperarUltimoCodigo() {
        try {
            ResultSet rs = bd.consultar("SELECT MAX(codProduto) FROM estoque");
            rs.next();
            int retorno;
            if(rs.getRow() == 0){

                retorno = 0;
            } else {
                retorno = rs.getInt("MAX(codProduto)");
            }
            return retorno;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public void excluir(EstoqueModel estoque) {
        try {
            bd.atualizar("DELETE FROM estoque WHERE (codProduto = "+estoque.getProduto()+")");

            System.out.println("DELETE FROM estoque WHERE (codProduto = "+estoque.getProduto()+")");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void editar(EstoqueModel estoque) {
        try {
            
            
            bd.atualizar("UPDATE estoque SET quantidade = "+ estoque.getQuant()+" WHERE Codproduto ="+estoque.getProduto());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
